
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>员工管理</title>
    <#include "../common/link.ftl">
    <script>
        $(function () {
            // 表单验证配置
            $('#editForm').bootstrapValidator({
                feedbackIcons: {
                    valid: 'glyphicon glyphicon-ok', // 用户填写正确时输入框会出现打钩的样式
                    invalid: 'glyphicon glyphicon-remove',
                    validating: 'glyphicon glyphicon-refresh'
                },
                fields:{ // 这里配置字段
                    name:{ // 名称是根据表单中的name查找
                        validators: { // 验证的规则
                            notEmpty: { // 规则的名字(这里是指定的,为notEmpty.可以理解为必填)
                                message: '*用户名必填' // 如果没填会出现的提示
                            },
                            remote: { //这里做判断输入用户名是否重复
                                type: 'POST', // 发送什么请求
                                url: '/employee/checkName.do', // 发送到什么地址
                                message: '用户名已存在', // 当用户名存在时候的提示
                                data: function() {  //自定义提交参数，默认只会提交当前用户名input的参数
                                    return {
                                        id: $('input[name="id"]').val(),
                                        name: $('input[name="name"]').val(),
                                    };
                                },
                                delay: 1000 // 多久检验一次

                            },

                        }
                    },
                    password:{ // 名称是根据表单中的name查找
                        validators: { //  验证的规则
                            notEmpty: {
                                message: '*密码必填'
                            },
                            stringLength: { // 字符串的长度范围(也是一个规则)
                                min: 1,   // notEmpty与stringLength是两个规则,用用逗号隔开
                                max: 5,
                            }
                        }

                    },
                    repassword:{
                        validators: { //  验证的规则
                            notEmpty: {
                                message: '*密码必填'
                            },
                            identical: {//两个字段的值必须相同
                                field: 'password', // 和哪个name相同
                                message: '两次输入的密码必须相同'
                            },
                        }
                    },
                    email:{
                        validators: { // 验证的规则
                            notEmpty: {
                                message: '*邮箱必填'
                            },
                            emailAddress: {} // 邮箱格式
                        }
                    },
                    age:{
                        validators: { // 验证的规则
                            notEmpty: { // 规则的名字(这里是指定的,为notEmpty.可以理解为必填)
                                message: '*年龄必填'
                            },
                            between: { // 年龄的范围
                                min: 18,
                                max: 60
                            }
                        }
                    },
                }
                // 此时点击提交按钮只是进行表单配置验证,无法提交数据
                // 用$('#editForm').submit(),也不行 .也就是变成验证,变成死循环
                // 所有要用.on('success.form.bv', function() { }方法
                // 使用 $("#editForm").ajaxSubmit(function (data) {} 提交
            }).on('success.form.bv', function() { //表单所有数据验证通过后执行里面的代码
                //提交异步表单
                $("#editForm").ajaxSubmit(function (data) { //form中已经设置了action,method
                    if(data.success){ //用alert或者popup都可以
                        $.messager.alert("温馨提示","操作成功!2s后自动关闭")
                        window.setTimeout(function () {
                            window.location.href = "/employee/list.do";
                        },2000)
                    }else{
                        $.messager.popup(data.msg);
                    }
                })
            });
        })
    </script>
</head>
<body class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">
    <#include "../common/navbar.ftl">
    <!--菜单回显-->
   <#assign currentMenu="employee"/>
    <#include "../common/menu.ftl">
    <div class="content-wrapper">
        <section class="content-header">
            <h1>员工编辑</h1>
        </section>
        <section class="content">
            <div class="box">
                <form class="form-horizontal" action="/employee/saveOrUpdate.do" method="post" id="editForm">
                    <input type="hidden" value="${(employee.id)!}" name="id" >
                    <div class="form-group" style="margin-top: 10px;">
                        <label for="name" class="col-sm-2 control-label">用户名：</label>
                        <div class="col-sm-6">
                            <input type="text" class="form-control" id="name" name="name"
                                   value="${(employee.name)!}" placeholder="请输入用户名">

                        </div>
                    </div>
                    <#--当用户不存在-->
                    <#if !employee?? >
                    <div class="form-group">
                        <label for="password" class="col-sm-2 control-label">密码：</label>
                        <div class="col-sm-6">
                            <input type="password" class="form-control" id="password" name="password"  placeholder="请输入密码">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="repassword" class="col-sm-2 control-label">验证密码：</label>
                        <div class="col-sm-6">
                            <input type="password" class="form-control" id="repassword" name="repassword"    placeholder="再输入一遍密码">
                        </div>
                    </div>
                    </#if>
                    <div class="form-group">
                        <label for="email" class="col-sm-2 control-label">电子邮箱：</label>
                        <div class="col-sm-6">
                            <input type="text" class="form-control" id="email" name="email" value="${(employee.email)!}" placeholder="请输入邮箱">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="age" class="col-sm-2 control-label">年龄：</label>
                        <div class="col-sm-6">
                            <input type="text" class="form-control" id="age" name="age" value="${(employee.age)!}" placeholder="请输入年龄">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="dept" class="col-sm-2 control-label">部门：</label>
                        <div class="col-sm-6">
                            <select class="form-control" id="dept" name="dept.id">
                                <option value="-1">全部</option>
                                <#list departments as dept>
                                    <option value="${(dept.id)!}">${(dept.name)!}</option>
                                </#list>
                            </select>
                        <#--回显-->
                            <script>
                                $("#dept option[value='${(employee.dept.id)!}']").prop("selected", true);
                            </script>
                        </div>
                    </div>
                    <#if !employee??>
                    <div class="form-group">
                        <label for="status" class="col-sm-2 control-label">状态：</label>
                        <div class="col-sm-6">
                            <select class="form-control" id="status" name="status">
                               <option value="1">正常</option>
                               <option value="0">禁用</option>
                            </select>
                        <#--回显-->
                            <#--<script>-->
                                <#--$("#status option[value='${(employee.status)!}']").prop("selected", true);-->
                            <#--</script>-->
                        </div>
                    </div>
                    </#if>
                    <div class="form-group" id="adminDiv">
                        <label for="admin" class="col-sm-2 control-label">超级管理员：</label>
                        <div class="col-sm-6"style="margin-left: 15px;">
                            <input type="checkbox" id="admin" name="admin" class="checkbox">
                            <#--写法有点不一样-->
                            <#--当是管理员的时候-->
                            <#if (employee.admin)!false >
                                <script>
                                    $(function () {
                                        $("#admin").prop("checked", true);
                                        role = $('#role').detach();
                                    })
                                </script>
                            </#if>
                        </div>
                        <script>
                            var role;
                            $('#admin').click(function () {
                                var checked = $(this).prop('checked');
                                if(checked){
                                      role = $('#role').detach();
                                }else{
                                     $('#adminDiv').after(role);
                                }
                            })
                        </script>
                    </div>
                    <div class="form-group " id="role">
                        <label for="role" class="col-sm-2 control-label">分配角色：</label><br/>
                        <div class="row" style="margin-top: 10px">
                            <div class="col-sm-2 col-sm-offset-2">
                                <select multiple class="form-control allRoles" size="15">
                                    <#list roles as role>
                                        <option value="${(role.id)!}">${(role.name)!}</option>
                                    </#list>
                                </select>
                            </div>
                            <div class="col-sm-1" style="margin-top: 60px;" align="center">
                                <div>

                                    <a type="button" class="btn btn-primary  " style="margin-top: 10px" title="右移动"
                                       onclick="moveSelected('allRoles', 'selfRoles')">
                                        <span class="glyphicon glyphicon-menu-right"></span>
                                    </a>
                                </div>
                                <div>
                                    <a type="button" class="btn btn-primary " style="margin-top: 10px" title="左移动"
                                       onclick="moveSelected('selfRoles', 'allRoles')">
                                        <span class="glyphicon glyphicon-menu-left"></span>
                                    </a>
                                </div>
                                <div>
                                    <a type="button" class="btn btn-primary " style="margin-top: 10px" title="全右移动"
                                       onclick="moveAll('allRoles', 'selfRoles')">
                                        <span class="glyphicon glyphicon-forward"></span>
                                    </a>
                                </div>
                                <div>
                                    <a type="button" class="btn btn-primary " style="margin-top: 10px" title="全左移动"
                                       onclick="moveAll('selfRoles', 'allRoles')">
                                        <span class="glyphicon glyphicon-backward"></span>
                                    </a>
                                </div>
                            </div>
                            <script>
                                // 点击页面上的 > < 按钮 能使选中的选项左右移动
                                function moveSelected(src,targer) {
                                    $('.'+ targer).append($('.' + src +'> option:selected'));
                                }
                                // 点击页面上的 >>  << 按钮 能使全部选项左右移动
                                function moveAll(src,targer) {
                                    $('.'+ targer).append($('.' + src +'> option'));
                                }
                            </script>
                            <div class="col-sm-2">
                                <select multiple class="form-control selfRoles" size="15" name="ids">
                                        <#list (employee.roles)!  as emp>
                                            <option value="${(emp.id)!}">${(emp.name)!}</option>
                                        </#list>
                                </select>
                                <script>
                                    // 遍历右边的选项装入数组中
                                    var ids = [];
                                    $('.selfRoles > option').each(function (i,ele) {
                                        var ele = $(ele).val();
                                        ids.push(ele);
                                    })
                                        // 遍历左边的选项和右边比较
                                    $('.allRoles > option').each(function (i,ele) {
                                        var id = $(ele).val();
                                        if($.inArray(id,ids) > -1){
                                            // 相同就删除
                                            $(ele).remove();
                                        }
                                    })

                                </script>
                            </div>
                        </div>
                    </div>

                    <div class="form-group">
                        <div class="col-sm-offset-1 col-sm-6">
                            <button id="submitBtn" type="button" class="btn btn-primary">保存</button>
                            <button type="reset" class="btn btn-danger">重置</button>
                        </div>
                        <script>
                            $('#submitBtn').click(function () {
                                // 让下拉框中所有的option都有selected属性
                                $('.selfRoles > option ').prop('selected',true);
                                // 提交表单数据
                                $('#editForm').submit();
                            })
                        </script>
                    </div>

                </form>

            </div>
        </section>
    </div>
    <#include "../common/footer.ftl">
</div>
</body>
</html>
